package scenes.malha;

import java.util.List;
import java.util.Vector;

import scenes.ponto.Ponto;
import scenes.ponto.PontoTemperatura;

/**
 * 
 * @author Equipe Scenes
 * @version Scenes 0.1 - - 03 de Dezembro
 * 
 * Faz o controle da temperatura nos pontos determinados 
 */
public class MalhaTemperatura extends Malha {

	private final double PASSOH = 0.1;
	private final double PASSOV = 0.1;

	private List<PontoTemperatura> pontosTemperatura = new Vector<PontoTemperatura>();

	/**
	 * Define o construtor defult para a alteracao de temperatud, definidos as coordenadas que serao monitoradas
	 * @param l - Define a largura da malha que tera a variacao da temperatura
	 * @param c - Define a comprimento da malha que tera a variacao da temperatura
	 */
	public MalhaTemperatura(double l, double c) {

		for (double x = 0; x <= l; x += PASSOH) {
			for (double y = 0; y <= c; y += PASSOV ) {
				pontosTemperatura.add(new PontoTemperatura(x, y));
			}
		}
	}

	/**
	 * 
	 * @param a - Define o ponto na coordenada x para a alteracao
	 * @param b - Define o ponto na coordenada y para a alteracao
	 * @param dT - Define a diferenca de temperatura que sera colocada para simulacao
	 * 
	 */
	public void aumentarTemperatura(Ponto a, Ponto b, double dT) {
		for (PontoTemperatura pt : pontosTemperatura) {
			if (!pt.menor(a) && pt.menor(b)) {
				pt.addTemperatura(dT);
			}
		}
	}
	
	public List<PontoTemperatura> getPontos() {
		return pontosTemperatura;
	}
}
